home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 46
/
Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso
/
-in_the_mag-
/
reader_requests
/
scilab
/
man
/
man-part1
/
cat4
/
abinv.4
< prev
next >
Wrap
Text File
|
1999-09-16
|
2KB
|
133 lines
abinv(1) Scilab Function abinv(1)
NAME
abinv - AB invariant subspace
CALLING SEQUENCE
[X,nr,nvg,nv,F,k,Z]=abinv(Sl,alfa)
PARAMETERS
sl : syslin list containing the matrices [A,B,C,D].
alpha : real number or vector (possibly complex, location of closed
loop poles)
X : orthogonal matrix of size nx (dim of state space).
nr,nvg,nv : three integers with nr<=nvg<=nv
F : real matrix (state feedback)
k : integer (normal rank of Sl)
Z : non-singular linear system (syslin list)
DESCRIPTION
Output nulling subspace (maximal unobservable subspace) for Sl = linear
system defined by a syslin list containing the matrices [A,B,C,D] of Sl.
The nv first columns of X i.e V=X(:,1:nv), span this subspace which is also
the unobservable subspace of (A+B*F,C+D*F).
The nr first columns of X spans R, the controllable part of V, (nr<=nv).
nr=0 for a left invertible system.
The nvg first columns of X spans Vg=maximal AB-stabilizable subspace.
(nr<=nvg<=nv). The modes of X2'*(A*BF)*X(:,1:nvg) are either assignable or
stable. For X=[V,X2] (X2=X(:,nv+1:nx)) one has X2'*(A+B*F)*V=0 and
(C+D*F)*V=0.
The zeros are given by : X0=X(:,nr+1:nv); spec(X0'*(A+B*F)*X0) i.e. nv-nr
closed-loop fixed modes. If the optional real parameter alfa is given as
input, the nr controllable modes of (A+BF) are set to alfa.
Z is a column compression of Sl and k the normal rank of Sl. (nv=nx iff
C^(-1)(D)=0).
DDPS:
Find u=Fx+Rd which reject Q*d and stabilizes the plant:
xdot=Ax+Bu+Qd
y=Cx+Du
DDPS has a solution iff Im(Q) is included in Vg + Im(B).
Let G=(X(:,nvg+1:nx))'= left anihilator of Vg i.e. G*Vg=0;
B2=G*B; Q2=G*Q; DDPS solvable iff B2(:,1:k)*R1 + Q2 =0 has a solution.
R=[R1;*] is the solution (with F=output of abinv).
Im(Q2) is in Im(B2) means row-compression of B2=>row-compression of Q2
Then C*[(sI-A-B*F)^(-1)+D]*(Q+B*R) =0 (<=>G*(Q+B*R)=0)
EXAMPLE
nu=3;ny=4;nx=7;
nrt=2;ngt=3;ng0=3;nvt=5;rk=2;
flag=list('on',nrt,ngt,ng0,nvt,rk);
Sl=ssrand(ny,nu,nx,flag);alfa=-1;
[X,nr,nvg,nv,F,k,Z]=abinv(Sl,alfa);
[A,B,C,D]=abcd(Sl);
V=X(:,1:nv);X2=X(:,nv+1:nx);
X2'*(A+B*F)*V
(C+D*F)*V
X0=X(:,nr+1:nv); spec(X0'*(A+B*F)*X0)
trzeros(Sl)
clean(ss2tf(Sl*Z))
AUTHOR
F.D.
SEE ALSO
abinv, st_ility, ssrand